/*
	author: TangQiao , Wind @ Beijing Normal University

	problem name: Diplomatic License 
	
	source : BNU Online Judge
	
	problem type: 几何题
	
	problem description: 求两点的中点
	
	
	faults: 1.看错题了,以为是求三点的外接圆心,MID函数即是此功能.现在没用了,但留在这里给
			作为一个教训.
	        2.数据开始用的是INT型,因为数据可能超INT,所以改用DOUBLE型才AC.
	
	date : 2005.7.25 北师大个人练习赛11
	
*/
#include <stdio.h>
#include <string.h>

int n;

struct cooo
{
	double x,y;
}dd[2],tt1,tt2,tt3;

void mid(int xx1,int yy1,int xx2,int yy2,int xx3,int yy3)
{
	double x1,x2,x3,y1,y2,y3;
	double x,y;
	if (yy1==yy2)
	{
		x1=xx3; y1=yy3;
		x2=xx1; y2=yy1;
		x3=xx2; y3=yy2;
	}
	else if (yy1==yy3)
	{
		x1=xx2; y1=yy2;
		x2=xx1; y2=yy1;
		x3=xx3; y3=yy3;

	}
	else if (yy2==yy3)
	{
		x1=xx1; y1=yy1;
		x2=xx2; y2=yy2;
		x3=xx3; y3=yy3;
	}
	double k1,k2,b1,b2;
	k1=-((x1-x2)/(y1-y2));
	k2=-((x1-x3)/(y1-y3));

	b1=(y1+y2)/2-k1*((x1+x2)/2);
	b2=(y1+y3)/2-k1*((x1+x3)/2);
	
	x=(b2-b1)/(k1-k2);
	y=k1*x+b1;
	printf("%lf %lf",x,y);
}



main()
{
	int i;
	while (scanf("%d", &n)!=EOF)
	{
		printf("%d", n);
		scanf("%lf%lf", &tt1.x, &tt1.y);
		tt2=tt1;
		for (i=2;i<=n;i++)
		{
			scanf("%lf%lf", &tt3.x, &tt3.y);
			printf(" %.6lf %.6lf", (tt2.x+tt3.x)/2,(tt2.y+tt3.y)/2);
			tt2=tt3;
		}
		printf(" %.6lf %.6lf\n", (tt3.x+tt1.x)/2,(tt3.y+tt1.y)/2);
	}

	return 0;
}